package com.yuandian.middle.platform.service;

import com.yuandian.api.middle_platform.po.OrgAbilityParam;
import com.yuandian.bpm.common.core.util.R;

/**
 * 说明：能力或服务指标数据查询接口
 * @Author tianlr
 * @Date 2023/5/18 10:35
 */
public interface IIndicatorDataService {
    /**
     * 查询能力服务对应的指标数据（API、SDK）
     * @return
     */
    public R selectDataByInvocationModeApiSdk(OrgAbilityParam param);

    /**
     * 查询能力服务对应的指标数据（PaaS、SaaS）
     * @return
     */
    public R selectDataByInvocationModePaaSaas(OrgAbilityParam param);

    /**
     * 查询能力服务对应的指标数据（H5）
     * @return
     */
    public R selectDataByInvocationModeH5(OrgAbilityParam param);

    /**
     * 查询能力服务对应的流量趋势数据
     * @param param
     * @return
     */
    public R selectDataFlow(OrgAbilityParam param);

    /**
     * 查询能力或服务对应的响应量趋势数据
     * @param param
     * @return
     */
    public R selectDataResponse(OrgAbilityParam param);

    /**
     * 查询能力服务对应调用量趋势数据（API、SDK）
     * @return
     */
    public R selectDataReqCountTrend(OrgAbilityParam param);

    /**
     * 查询能力服务对应核心页面浏览量趋势数据（PaaS、SaaS）
     * @return
     */
    public R selectDataCorePageViewTrend(OrgAbilityParam param);

    /**
     * 查询能力服务对应浏览量趋势数据（H5）
     * @return
     */
    public R selectDataPageViewTrend(OrgAbilityParam param);

    /**
     * 查询响应耗时分布
     * @param param
     * @return
     */
    public R selectResponseTimeDistribution(OrgAbilityParam param);

    /**
     * 查询能力或服务对应的响应量快照数据
     * @param param
     * @return
     */
    public R selectDataResponseSnapshot(OrgAbilityParam param);
}
